package java6681.lesson04;

import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;

import java.util.ArrayList;
import java.util.Random;

/**
 * @author Junichiro
 * @description 筛选集合中的随机数
 * @date 2021-03-29 1:50
 **/


public class ListFilter6681Controller {

    @FXML
    private ListView<Integer> lvAll;

    @FXML
    private Label lbl5;

    @FXML
    private ListView<Integer> lv5;

    @FXML
    void buttonClick() {
        /*获取*/
        ObservableList<Integer> items = lvAll.getItems();
        ObservableList<Integer> items1 = lv5.getItems();
        /*遍历显示*/
        for (Integer integer : createList6681()) {
            items.add(integer);
            findList6681(integer);
            for (Integer integer1 : findList6681(integer)) {
                items1.add(integer1);
            }
        }
        lbl5.setText("其中：5的倍数有：" + items1.size() + "个");
    }

    /**
     * 功能：负责随机产生20个[60,100]的整数，存储到集合中
     *
     * @param
     * @return ArrayList<Integer> 返回20个随机数
     */
    public static ArrayList<Integer> createList6681() {
        /*创建产生随机数的对象*/
        Random random = new Random();
        /*创建一个存储随机数的集合*/
        ArrayList<Integer> array = new ArrayList<>();
        /*定义一个统计变量。从0开始。*/
        int count = 0;
        /*判断统计遍历是否小于20*/
        while (count < 20) {
            /*随机数*/
            int i = random.nextInt(40) + 61;
            /*判断该随机数在集合中是否存在。*/
            if (!array.contains(i)) {
                /*如果不存在:就添加，统计变量++*/
                array.add(i);
                count++;
            }
        }
        return array;
    }

    /**
     * 功能：负责从一个集合中提取5的倍数的数据，放到另一个集合
     *
     * @param num Integer 传入60-100的20个随机数
     * @return ArrayList<Integer> 返回5的倍数
     */
    public static ArrayList<Integer> findList6681(Integer num) {
        /*新的集合存放5的倍数*/
        ArrayList<Integer> it = new ArrayList<>();
        /*判断是否为5的倍数*/
        if (num % 5 == 0) {
            it.add(num);
        }

        return it;
    }
}

